package com.justgame.project.service.just.service.basic;

import com.justgame.project.service.just.entity.JustGameInfo;
import com.justgame.project.service.just.query.JustGameInfoQuery;
import com.justgame.project.service.just.wrapper.JustGameInfoWrapper;
import com.justgame.project.base.servcice.IBasicService;
import java.lang.Long;
import org.springframework.util.Assert;
import org.springframework.lang.NonNull;
import java.lang.String;
import java.math.BigDecimal;

/**
 *
 * 游戏信息表服务自定义查询类
 *
 * @@tableName just_game_info
 * @author Zwb
 */
@SuppressWarnings("all")
public interface BasicJustGameInfoService extends IBasicService<JustGameInfoQuery,JustGameInfo,JustGameInfoWrapper> {

   /**
    * 新增创建
    * @param cnName 中文名
    * @param enName 英文名
    * @param images 封面图片
    * @param website 官网
    * @param desc 描述
    * @param companyId 游戏开发公司id
    * @param amount 价格
    * @param type 游戏类型
    */
   default JustGameInfo baseAdd(String cnName, String enName, String images, String website, String desc, Long companyId, BigDecimal amount, JustGameInfo.Type type){
      JustGameInfo justGameInfo = new JustGameInfo();
      justGameInfo.setCnName(safeValue(cnName, null));
      justGameInfo.setEnName(safeValue(enName, null));
      justGameInfo.setImages(safeValue(images, null));
      justGameInfo.setWebsite(safeValue(website, null));
      justGameInfo.setDesc(safeValue(desc, null));
      justGameInfo.setCompanyId(safeValue(companyId, null));
      justGameInfo.setAmount(safeValue(amount, null));
      justGameInfo.setType(safeValue(type, null));
      save(justGameInfo);
      return justGameInfo;
   }

   /**
    * 更新
    * @param cnName 中文名
    * @param enName 英文名
    * @param images 封面图片
    * @param website 官网
    * @param desc 描述
    * @param companyId 游戏开发公司id
    * @param amount 价格
    * @param type 游戏类型
    */
   default boolean baseUpdate(@NonNull JustGameInfo justGameInfo,String cnName, String enName, String images, String website, String desc, Long companyId, BigDecimal amount, JustGameInfo.Type type){
      Assert.notNull(cnName,"必须提供中文名");
      Assert.notNull(enName,"必须提供英文名");
      Assert.notNull(amount,"必须提供价格");
      Assert.notNull(website,"必须提供官网");
      Assert.notNull(images,"必须提供封面图片");
      Assert.notNull(desc,"必须提供描述");
      Assert.notNull(type,"必须提供游戏类型");
      Assert.notNull(companyId,"必须提供游戏开发公司id");
      Assert.notNull(justGameInfo.getId(),"必须提供主键ID");
      justGameInfo.setCnName(safeValue(cnName, null));
      justGameInfo.setEnName(safeValue(enName, null));
      justGameInfo.setImages(safeValue(images, null));
      justGameInfo.setWebsite(safeValue(website, null));
      justGameInfo.setDesc(safeValue(desc, null));
      justGameInfo.setCompanyId(safeValue(companyId, null));
      justGameInfo.setAmount(safeValue(amount, null));
      justGameInfo.setType(safeValue(type, null));
      return updateById(justGameInfo);
   }

}